package 多线程.AtomicInteger原理用法;

import java.util.concurrent.atomic.AtomicInteger;

public class TaskProcessor {
    private static final int MAX_CONCURRENT_TASKS = 10;
    private AtomicInteger activeTasks = new AtomicInteger(0);

    public void processTask(Runnable task) {
        // 检查是否达到最大并发任务数
        while (activeTasks.get() >= MAX_CONCURRENT_TASKS) {
            // 等待其他任务完成后再继续执行
            Thread.yield();
        }

        try {
            activeTasks.incrementAndGet(); // 增加活动任务数
            task.run(); // 执行任务
        } finally {
            activeTasks.decrementAndGet(); // 减少活动任务数
        }
    }
}
